package com.tinet.autentia.autentificador.svc;

import javax.ejb.Remote;

/**
 * 
 * Interfaz que tiene firma de los metodos para UsuarioBean.
 * 
 * @author Frmancil
 */
@Remote
public interface InterfazUsuarioBean {
    /**
     * Recibe un usuario creado desde la capa web y lo agrega a una coleccion
     * de objetos.
     * 
     * @param nuevoUsuario
     *            Es el objeto usuario que recibe el metodo y agrega a la base
     *            de datos.
     * @throws UsuarioException
     *             Excepcion cuando usuario a agregar existe en la base de
     *             datos.
     */
    //void agregarUsuario(Usuario nuevoUsuario);

    /**
     * Recibe del bean un usuario y lo elimina de la coleccion de objetos.
     * 
     * @param usuarioAEliminar
     *            Es el objeto usuario que recibe el metodo, para buscarlo y
     *            eliminar a su par.
     * @throws UsuarioException
     *             Excepcion cuando usuario a borrar no existe en la base de
     *             datos.
     */
    //void borrarUsuario(Usuario usuarioAEliminar);

    /**
     * Recibe del bean un usuario y lo actualiza en la coleccion de objetos.
     * 
     * @param usuarioAActualizar
     *            Es el objeto usuario que recibe el metodo, para buscarlo y
     *            actualizar sus datos.
     * @throws UsuarioException
     *             Excepcion cuando usuario a actualizar no existe en la base
     *             de datos.
     */
    //void actualizarUsuario(Usuario usuarioAActualizar);

    /**
     * Recibe del bean un usuario y lee sus atributos desde la coleccion de
     * objetos.
     * 
     * @param username
     *            Atributo para hacer busqueda de objeto.
     * @return Usuario encontrado es retornado para desplegar sus datos.
     */
    //Usuario leerUsuario(String username);

    /**
     * Recibe del bean un String con el atributo username y lee sus atributos
     * desde la coleccion de objetos.
     * 
     * @param usuarioABuscar
     *            Objeto tipo usuario que se busca en la coleccion de objetos.
     * @return Usuario encontrado es retornado para desplegar sus datos.
     * @throws UsuarioException
     *             Excepcion cuando usuario a buscar no existe en la base de
     *             datos.
     */
    //Usuario buscarUsuario(Usuario usuarioABuscar);

    /**
     * Metodo que retorna la lista de todos los usuarios.
     * 
     * @return Retorna una lista con todos los usuarios de la coleccion de
     *         objetos.
     */
    public void listar();

    /**
     * 
     * Metodo que busca a usuario que se quiere agregar a la base de datos
     * para comprobar si existe.
     * 
     * @param usuarioABuscar
     *            Objeto tipo usuario que se busca en la coleccion de objetos.
     * @return Usuario encontrado es retornado para desplegar sus datos.
     * @throws UsuarioException
     *             Excepcion cuando usuario a buscar no existe en la base de
     *             datos.
     */
    //Usuario buscarUsuarioAgregado(Usuario usuarioABuscar);
}
